#ifndef WRAPPERCOMPONENTE_H_
#define WRAPPERCOMPONENTE_H_

#include <sstream>
#include "Componente.h"

namespace Toolkit
{

class WrapperComponente
{
public:
	WrapperComponente();
	virtual ~WrapperComponente();

	virtual void serializar(stringstream&, const TipoSerializacion &tSerializacion) const;
    virtual void hidratar(stringstream &stream, const Dato &dato, const TipoSerializacion &tSerializacion);

    Componente *getComponente() const;
    void setComponente(Componente* componente);

    unsigned long int getTamanoMetadata(const TipoSerializacion &tSerializacion);

    virtual WrapperComponente *clonarSinComponente() const;

protected:
	Componente* componente;

};

}

#endif /*WRAPPERCOMPONENTE_H_*/
